package Day11;

import com.sun.imageio.plugins.jpeg.JPEGImageWriterResources;

import java.util.*;

/**
 * @Author kalista
 * @Description
 * @Date 2020/11/17  10:19
 **/
public class HashMapTest {
    public static void main(String[] args) {

        // hashmap 键值对的数据结构
        // key value
        Map<Integer, String> map = new HashMap<>();
        // 1. 添加元素
        map.put(1,"王聪聪1");
        map.put(2,"王聪聪2");
        map.put(3,"王聪聪3");
        map.put(4,"王聪聪4");
        map.put(4,"王聪聪5");
        // 2. 获取value
        String s = map.get(1);
        System.out.println(s);

        // 3. 获取map 大小
        System.out.println(map.size());
        System.out.println(map.containsKey("3423"));
        System.out.println(map.containsValue("3423"));

        // 4. 遍历
        // 第一种 for-each 普通使用 二次取值（性能差）
        Set<Integer> integers = map.keySet();
        for (Integer integer : integers) {
            System.out.println(map.get(integer));
        }


        // 第二种 Entryiterator 性能比第一种好 一次取值
        Iterator<Map.Entry<Integer, String>> iterator1 = map.entrySet().iterator();
        while (iterator1.hasNext()){
            Map.Entry<Integer, String> next = iterator1.next();
            System.out.println(next.getKey());
            System.out.println(next.getValue());
        }


        // 第三种 推荐 尤其是容量大
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }


        // 第四种
        Collection<String> values = map.values();
        for (String value : values) {
            System.out.println(value);
        }


    }
}
